$(document).ready(function() {  
    jQuery.validator.addMethod("validaMarca", function(value, element){
        if($('#dlg-marca').text().length < 2)
            return false; 
        return true;
   });
    jQuery.validator.addMethod("validaFactdeinc", function(value, element){
        if($('#dlg-factdeinc').text().length < 2)
            return false;
        return true;
   });
    jQuery.validator.addMethod("validaCategoria", function(value, element){
        if($('#dlg-categoria').text().length < 2)
            return false;
        return true;
   });
    jQuery.validator.addMethod("validaProveedor", function(value, element){
        if($('#dlg-proveedor').text().length < 2)
            return false;        
        return true;
   });
    jQuery.validator.addMethod("validaMoneda", function(value, element){
        if($('#dlg-moneda').text().length < 2)
            return false;        
        return true;
   });
    $("#tabla-principal th").on('click',function(e){
       $(this).parent().find('th').css('background-color','transparent');
       $(this).css('background-color','#bbb'); 
    });  
    filtroDeTabla();
}); 
$(function(){
    $('#dlg-modal').hide();//oculta el dialogo modal
    $('#contenido-forma').hide();//oculta la forma que contiene la informaciln para el dialogo modal
    $('#confirmar-cambios-modal').hide();//oculta el cialogo modal de confirmacion de cambios
    $('.modificar-modal').bind('click', function(e) {//se le asigna el evento click al boton modificar d ela tabla principal
        e.preventDefault(); 
        funcionModificar(activo);
        funcionValidar();
    }); 
    $('.agregar-modal').bind('click', function(e) {//se le asigna el evento click al boton modificar d ela tabla principal
        e.preventDefault();
        funcionAgregar(); 
        funcionValidar();
    });
    $('.agregar-modal').bind('click', function(e){
        e.preventDefault();
        funcionColores();
    });
    $('.eliminar-modal').bind('click', function(e) {
        e.preventDefault();
        funcionEliminar(activo);   
    }); 
    obtenerRenglon();
});

////////Seccion Validar Datos//////////
function funcionValidar(){
     $('#forma-modal').validate({ // initialize the plugin
         // Specify the validation rules
        rules: { 
            descripcion:"required",
            costo:{
                required: true, 
                number: true
            },
            marcainput: "validaMarca",
            factdeincinput: "validaFactdeinc",         
            categoriainput: "validaCategoria",
            proveedorinput: "validaProveedor",
            monedainput: "validaMoneda"
        },
        tooltip_options:{
            descripcion:{  placement: 'top' }, 
            marcainput: {  placement: 'bottom' },
            factdeincinput: {  placement: 'bottom' },
            categoriainput: {  placement: 'bottom' },
            proveedorinput: {  placement: 'bottom' },
            monedainput: {  placement: 'bottom' }
        },
        // Specify the validation error messages
        messages: { 
            descripcion:"Campo Requerido",
            costo:{
                required: "Campo Requerido",
                number: "Solo acepta Digitos"
            },
            marcainput: "Selecciona Marca",
            factdeincinput: "Selecciona Fact. de Inc.",         
            categoriainput: "Selecciona Categoria",
            proveedorinput: "Selecciona Proveedor",
            monedainput: "Selecciona Moneda"
        }
    }); 
} 

/////////Seccion Agregar////////////////
////////////////////////////////////////
function funcionAgregar(){ 
    preparaAgregarModal();
    $('#dlg-modal').bPopup({ 
        speed: 200,
        transition: 'slideDown',onClose: function(){
            cerrandoModal();
        }
    }); 
    $('.aceptar-modal').attr('id','agregar-boton');
    $('.cancelar-modal').bind('click',function(){ 
                $('#dlg-modal').bPopup().close();
            });
    $('#agregar-boton').bind('click',function(){
        $('#borde-int-confirmar').html('<br><br>¿Está seguro que <br><br>desea dar de alta<br> <br>al Nuevo Equipo?'
                                        +'<div class="btn btn-success" id="confirmar-cambios">Agregar</div><div class="btn btn-danger" id="cancelar-cambios">Cancelar</div>');
                if($('#forma-modal').valid()){
                        $('#confirmar-cambios-modal').bPopup({
                            speed: 200,
                            transition: 'slideDown',onClose: function(){
                                $('#cancelar-cambios').unbind('click');
                                $('#confirmar-cambios').unbind('click');
                            }
                        }); 
                        $('#cancelar-cambios').bind('click',function(){ 
                            $('#confirmar-cambios-modal').bPopup().close();
                        });
                        $('#confirmar-cambios').click(function(){
                               agregarFormaPago();
                        });
                }
                else
                    alert("Verifique los campos");
    });
} 
function preparaAgregarModal(){ 
    $('#dlg-modal #contenido').html($('#contenido-forma').html());
    $('#contenido-forma').html('');    
    $('.titulo-modal').html('Agregar Nuevo Equipo');    
    $('#forma-modal').addClass('cliente-modal-forma');        
     $.post(rutaObtenerFecha,{},function(fecha){
        llenaForma2(fecha);
        agregaEventos();
        $('.aceptar-modal').html('Agregar');
        $('.cancelar-modal').html('Cancelar');
        $('.aceptar-modal').attr('id','agregar-boton');
    });
}
function agregarFormaPago(){
          
    $('#dlg-modal').bPopup().close();
    $('#confirmar-cambios-modal').bPopup().close();
    $varactivo = 0;
    if($('#dlg-activo').is(':checked'))
        varactivo = 1;
    else
        varactivo = 0;
    $.post(
        rutaAgregar,{ 
            activo: varactivo,
            descripcion:$('#dlg-descripcion').val(), 
            detalles:$('#dlg-detalles').val(), 
            costo:$('#dlg-costo').val(), 
            costoinstal:$('#dlg-costoinstal').val(), 
            monedanom:$('#dlg-moneda').text(),
            monedaval:$('#dlg-monedaval').val(), 
            factdeincnom:$('#dlg-factdeinc').text(), 
            factdeincval:$('#dlg-factdeinc-input').val(), 
            marca:$('#dlg-marca').text(), 
            proveedor:$('#dlg-proveedor').text(), 
            fecha:$('#dlg-fecha').val(), 
            categoria:$('#dlg-categoria').text()
        },
        function(nuevo){ 
            if(nuevo==null){
                alert('El Nuevo Equipo no fue agregado!');
                return;
            }
            var act, renglon;   
            if(nuevo['activo']==1)
                act = 'Si';
            else
                act = 'No';
            var botones = '<button class="btn btn-small btn-primary modificar-modal">Modificar</button>&nbsp'
                            +'<button class="btn btn-small btn-danger eliminar-modal">Eliminar</button>'
            $('#tabla-principal').dataTable().fnAddData( [
                nuevo['id'],
                nuevo['descripcion'],
                nuevo['marca'],
                nuevo['costo'],
                nuevo['detalles'],
                act,
                botones]);
            renglon = $('.contenedor-tabla tbody tr:last-child');
            renglon.find('.modificar-modal').bind('click', function(e) {
                e.preventDefault();
                funcionModificar($(this));
            });
            renglon.find('.eliminar-modal').bind('click', function(e) {
                e.preventDefault();
                funcionEliminar($(this));
            });
            todos[todos.length] = nuevo;
            obtenerRenglon();
            alert('Equipo agregado!'); 
        });
        
}
////////////////////////////////////////
//////////////Fin Agregar///////////////


/////////Seccion Modificar//////////////
////////////////////////////////////////
function funcionModificar(elemento){
    var id_ele = elemento;//.parent().parent().find('td:first').html();//se obtiene el id del elemento al que se le dio click
    todos.forEach(function(c){
        if(c['id']==id_ele){
            preparaModificarModal(c);
            $('.aceptar-modal').attr('id','modificar-boton');
            $('#dlg-modal').bPopup({ 
                speed: 200,
                transition: 'slideDown',onClose: function(){
                    cerrandoModal();
                }
            }); 
            $('.cancelar-modal').bind('click',function(){ 
                $('#dlg-modal').bPopup().close();
            });
            $('#modificar-boton').bind('click',function(){
                $('#borde-int-confirmar').html('<br><br>¿Está seguro que <br><br>desea guardar los<br> <br>cambios?'
                                                +'<div class="btn btn-success" id="confirmar-cambios">Guardar</div><div class="btn btn-danger" id="cancelar-cambios">Cancelar</div>');
            if($('#forma-modal').valid()){                                        
                    $('#confirmar-cambios-modal').bPopup({ 
                        speed: 200,
                        transition: 'slideDown',onClose: function(){
                            $('#cancelar-cambios').unbind('click');
                            $('#confirmar-cambios').unbind('click');
                        }
                    }); 
                    $('#cancelar-cambios').bind('click',function(){ 
                        $('#confirmar-cambios-modal').bPopup().close();
                    });
                    $('#confirmar-cambios').click(function(){
                        modificarEquipo();
                    });
                } 
            });
            return;
        }
    });
}
function preparaModificarModal(c){
    $('#dlg-modal #contenido').html($('#contenido-forma').html());
    $('#contenido-forma').html('');
    $('.titulo-modal').html('Modificar Equipo');
    $('#forma-modal').addClass('cliente-modal-forma');
    $.post(rutaObtenerFecha,{},function(fecha){    
        llenaForma(c, fecha);   
        agregaEventos();
    });    
    $('#dlg-factdeinc').attr('data-toggle','dropdown');
    $('#dlg-moneda').attr('data-toggle','dropdown');
    $('#dlg-proveedor').attr('data-toggle','dropdown');
    $('#dlg-categoria').attr('data-toggle','dropdown');   
    $('#dlg-marca').attr('data-toggle','dropdown');
    $('.aceptar-modal').show();
    $('.cancelar-modal').show();
    $('.aceptar-modal').html('Guardar');
    $('.cancelar-modal').html('Cancelar');    
}
 
function modificarEquipo(){
    $('#dlg-modal').bPopup().close();
    $('#confirmar-cambios-modal').bPopup().close();
    $varactivo = 0; 
    if($('#dlg-activo').is(':checked'))
        varactivo = 1;
    else
        varactivo = 0;
    $.post(
        rutaModificar,{ 
            activo: varactivo,
            descripcion:$('#dlg-descripcion').val(), 
            id: $('#dlg-id').val(),            
            detalles:$('#dlg-detalles').val(), 
            costo:$('#dlg-costo').val(), 
            costoinstal:$('#dlg-costoinstal').val(), 
            monedanom:$('#dlg-moneda').text(),
            monedaval:$('#dlg-monedaval').val(), 
            factdeincnom:$('#dlg-factdeinc').text(), 
            factdeincval:$('#dlg-factdeinc-input').val(), 
            marca:$('#dlg-marca').text(), 
            fecha:$('#dlg-fecha').val(), 
            proveedor:$('#dlg-proveedor').text(), 
            categoria:$('#dlg-categoria').text()
        },
        function(elemento){
            if(elemento==null){
                alert('El Equipo no fue modificado!');
                return;
            }
            $('.contenedor-tabla tbody').find('.id-tabla').each(function(){
                if($(this).text()==elemento['id']){                    
                    $(this).parent().find('.nombre-tabla').text(elemento['descripcion']); 
                }
            });
            for(var i = 0;i<todos.length;i++){
                if(todos[i]['id']==elemento['id']){
                    todos[i] = elemento;
                    break;
                }
            }                        
        });
        alert('Equipo modificado!'); 
}
////////////////////////////////////////
/////////////Fin Modificar//////////////

/////////Seccion Eliminar///////////////
////////////////////////////////////////
function funcionEliminar(elemento){
    var id_ele = elemento;//.parent().parent().find('td:first').html();//se obtiene el id del elemento al que se le dio click
    $('#borde-int-confirmar').html('<br><br>¿Está seguro que <br><br>desea eliminar el<br> <br>Equipo con id '+ id_ele +'?<br><br>'
                                    +'El registro no se podrá recuperar'
                                    +'<div class="btn btn-success" id="confirmar-cambios">Aceptar</div><div class="btn btn-danger" id="cancelar-cambios">Cancelar</div>');
    $('#confirmar-cambios-modal').bPopup({ 
        speed: 200,
        transition: 'slideDown',onClose: function(){
            $('#cancelar-cambios').unbind('click');
            $('#confirmar-cambios').unbind('click');
        }
    }); 
    $('#cancelar-cambios').bind('click',function(){ 
        $('#confirmar-cambios-modal').bPopup().close();
    });
    $('#confirmar-cambios').click(function(){
        eliminarEquipo(id_ele);
    });
}
function eliminarEquipo(id){
    $('#confirmar-cambios-modal').bPopup().close();
    $.post(
        rutaEliminar,
        {id: id},
        function(elemento){
            if(elemento['eliminado']==false)
                alert('El Equipo no fue eliminado!');
            for(var i = 0;i<todos.length;i++){
                if(todos[i]['id']==elemento['id']){
                    todos.splice(i,1);
                    break;
                }
            }
            $('.contenedor-tabla tbody').find('.id-tabla').each(function(){
                if($(this).text()==elemento['id'])
                    $(this).parent().remove();
            });
            alert('Equipo eliminado!'); 
        });
}
////////////////////////////////////////
/////////////Fin Eliminar///////////////


///llenado de informacion y eventos///
//////////////////////////////////////
function llenaForma(c, fecha){ 
    $('#forma-modal').addClass('form-inline');
    $('#dlg-id').val(c['id']);
    $('#dlg-descripcion').val(c['descripcion']);
    $('#dlg-factdeinc-input').val(c['factdeincval']);
    if(c['activo'] == 0) 
        $('#dlg-activo').attr('checked',false);
    else
        $('#dlg-activo').attr('checked',true);  
    $('.dropdown').removeClass('open');
    $('#dlg-categoria').html(c['categoria']+'<span class="caret"></span>');
    $('#dlg-marca').html(c['marca']+'<span class="caret"></span>');
    $('#dlg-factdeinc').html(c['factdeincnom']+'<span class="caret"></span>');
    $('#dlg-moneda').html(c['monedanom']+'<span class="caret"></span>');
    $('#dlg-proveedor').html(c['proveedor']+'<span class="caret"></span>'); 
    $('#dlg-fecha').val(fecha);
    $('#dlg-detalles').val(c['detalles']);
    $('#dlg-fotografia').val('');  
    $('#dlg-costoinstal').val(c['costoinstal']); 
    $('#dlg-costo').val(c['costo']); 
}
function llenaForma2(fecha){ 
    $('#forma-modal').addClass('form-inline');
    $('#dlg-id').val('Nuevo');
    $('#dlg-descripcion').val(''); 
    $('#dlg-fecha').val(fecha); 
    $('#dlg-detalles').val(''); 
    $('#dlg-costo').val(''); 
    $('#dlg-costoinstal').val(''); 
    $('#dlg-fotografia').val(''); 
    $('#dlg-activo').attr('checked',false);
    $('#dlg-categoria').html('&nbsp<span class="caret"></span>');
    $('#dlg-marca').html('&nbsp<span class="caret"></span>');
    $('#dlg-factdeinc').html('&nbsp<span class="caret"></span>');
    $('#dlg-moneda').html('&nbsp<span class="caret"></span>');
    $('#dlg-proveedor').html('&nbsp<span class="caret"></span>');
    $('#dlg-factdeinc-input').val('');
    $('#dlg-costoinstal').val(''); 
    $('#dlg-costo').val(''); 
}
function vaciaForma(){
    $('#forma-modal').removeClass('cliente-modal-forma');
    $('#forma-modal').removeClass('form-inline');
    $('#dlg-id').val('');
    $('#dlg-descripcion').val('');
    $('#dlg-leyenda').val(''); 
    $('#dlg-activo').attr('checked',false);
    $('#dlg-desc-mueble').val('');
    $('#dlg-desc-esp-mueble').val('');
    $('#dlg-desc-equipo').val('');
    $('#dlg-desc-esp-equipo').val('');
    $('#dlg-desc-cubierta').val('');
    $('#dlg-desc-esp-cubierta').val('');  
}  
function cerrandoModal(){
    $('.tooltip').hide(); 
    $('#contenido-forma').html($('#dlg-modal #contenido').html());
    $('#dlg-modal #contenido').html('');
    vaciaForma();
}
/////////////////////////////////////////
/////////////////////////////////////////
//Fin llenado de informacion  y eventos//
function filtroDeTabla(){
    var datatable = $("#tabla-principal").dataTable({
        "sPaginationType": "full_numbers",
        "oLanguage": {
            "sSearch": "Filtrar con el texto: _INPUT_",
            "sLengthMenu": "Registros visibles: _MENU_",
            "oPaginate": {
                "sNext": "Siguiente",
                "sPrevious": "Anterior",
                "sFirst": "Primera",
                "sLast": "Ultima"
            },
            "sInfo": "Mostrando   _START_ a _END_   de un total de _TOTAL_ registros",
            "sInfoFiltered": "(filtrados de _MAX_ registros totales)"
        }
    });
    datatable.columnFilter({
        aoColumns: [{ type: "text" },
                    { type: "text" }, 
                    { type: "text" }, 
                    {},
                    {},
                    {},
                    null]
    });
}
function obtenerRenglon(){
    
     $('#tabla-principal tr').on('click',function(){
        $('#tabla-principal').find('.seleccionado').removeClass('seleccionado');
        $(this).addClass('seleccionado');
        activo = $(this).find('.id-tabla').text();
        $('#seleccion').text('Registro '+activo);
        $('.tres-botones .btn').removeAttr('disabled');
        itabla = oTable.fnGetPosition(this);
    });
    $('#tabla-principal tr').on('dblclick',function(){
        $('#tabla-principal').find('.seleccionado').removeClass('seleccionado');
        $(this).addClass('seleccionado');
        activo = $(this).find('.id-tabla').text();
        $('#seleccion').text('Registro '+activo);
        $('.tres-botones .btn').removeAttr('disabled');
        itabla = oTable.fnGetPosition(this);
        funcionModificar(activo);
        funcionValidar(); 
    });
}


function agregaEventos(){
    $('.drop-moneda').bind('click',function(){ 
        $('#dlg-moneda').html($(this).text()+'<span class="caret"></span>');
         $("#forma-modal").validate().element("#monedainput");
    });
    $('.drop-categoria').bind('click',function(){ 
        $('#dlg-categoria').html($(this).text()+'<span class="caret"></span>');
         $("#forma-modal").validate().element("#categoriainput");
    });
    $('.drop-marca').bind('click',function(){ 
        $('#dlg-marca').html($(this).text()+'<span class="caret"></span>');
         $("#forma-modal").validate().element("#marcainput");
    });
    $('.drop-factdeinc').bind('click',function(){ 
        $('#dlg-factdeinc').html($(this).text()+'<span class="caret"></span>');
         $("#forma-modal").validate().element("#factdeincinput");
         
//         $('#dlg-factdeinc-input').html($(this).text()+'<span class="caret"></span>');
//         incremento.forEach(function(e){
//            if(nombre==e['nombre']){
//                e['ciudades'].forEach(function(ciudad){
//                    $('#dlg-ciudad-menu').append('<li><a tabindex="-1" href="javascript:void(0);" class="drop-ciudad">'+ciudad+'</a></li>');
//                });
//            }
//        });
        
    });    
    $('.drop-proveedor').bind('click',function(){ 
        $('#dlg-proveedor').html($(this).text()+'<span class="caret"></span>');
         $("#forma-modal").validate().element("#proveedorinput");
    });
}